package ar.edu.utn.frba.gdaia.src.junittest.conceptoelemental;

import junit.framework.TestCase;
import ar.edu.utn.frba.gdaia.src.domain.Canal;
import ar.edu.utn.frba.gdaia.src.domain.ConceptoElemental;

public class ConceptoElementalTest4 extends TestCase {

	public static void main(String[] args) {
		junit.swingui.TestRunner.run(AllTests.class);
	}

	public final void testExecute() {
		
		ConceptoElemental ConceptoE3 = new ConceptoElemental(3, "Hola",Canal.TECLADO);
		ConceptoElemental ConceptoE4 = new ConceptoElemental(4, "Tres",Canal.TECLADO);
		ConceptoElemental ConceptoE5 = new ConceptoElemental(5, "P",Canal.TECLADO);
		ConceptoElemental ConceptoE6 = new ConceptoElemental(6, "P",Canal.TECLADO);
		
		ConceptoElemental ConceptoA1 = new ConceptoElemental(10, null,Canal.TECLADO);
		ConceptoElemental ConceptoA2 = new ConceptoElemental(11, null,Canal.TECLADO);
		ConceptoElemental ConceptoA3 = new ConceptoElemental(13, null,Canal.TECLADO);
		
		ConceptoA1.addHijo(ConceptoE3);
		ConceptoA1.addHijo(ConceptoE4);
		ConceptoA1.addHijo(ConceptoE5);
		
		ConceptoA2.addHijo(ConceptoE3);
		ConceptoA2.addHijo(ConceptoE5);
		ConceptoA2.addHijo(ConceptoE4);
		
		ConceptoE3.addPadre(ConceptoA1);
		ConceptoE4.addPadre(ConceptoA1);
		ConceptoE5.addPadre(ConceptoA1);

		// deben ser iguales porque tienen el mismo contenido ( valor)
		assertTrue(ConceptoE5.equals(ConceptoE6));
		// son iguales aunque tienen hijos en distinto orden
		assertTrue(ConceptoA2.equals(ConceptoA1));
		// un Abstracto y un elementan son distintos, of course
		assertFalse(ConceptoA1.equals(ConceptoE4));
	}
}
